Many of today's microprocessor systems use a read-only-memory (ROM) containing a plurality of multi-bit instruction words, called microinstructions, which are accessed to effect control of the microprocessor. Typically, the microprocessor system includes a controller element which forms address signals that are used to access the microinstructions from the ROM. Each microinstruction accessed contains bits to control the microprocessor hardware, including an arithmetic logic unit (ALU) to perform the necessary shifting and manipulation of data as required for the data processing operations.
The architecture of the microprogram memory determines, to a large extent, the operating capabilities of the microprocessor. For example, microprogram memories that store 8-bit microinstructions will operate more slowly than those which store microinstructions of larger bit numbers due to the need to fetch more miscroinstructions to perform a particular operation. Thus, if speed of operation must be considered when designing a microprocessor system, a ROM structured to contain wide, multi-bit microinstructions (e.g. 16 bits or greater) is one solution. Such many-bit microinstructions provide that capability of performing several functions simultaneously such as, for example, selecting registers contained in the ALU as the source/destination of data, specifying an ALU operation, and designating a next microinstruction address. However, this can increase the cost of the microprocessor system in terms of requiring larger ROM capacity and additional interconnecting signal lines within the system. Further, unless such predetermined bit fields are used extensively, they become a luxury that the designer can ill afford.